The value of a POINTER variable is the ADDRESS of a value of another type. In this case, the type of value contained at this address must be stated. The '*' qualifier used here declares the variable f_ptr to be a pointer to a floating-point value:
float *f_ptr;
Whenever a pointer variable is used, a non-pointer value must be declared as well, in order to allocate machine addresses to contain the data to be pointed to. Two operators are commonly used in expressions involving pointers: '&' ("address of") and '*' ("that which is pointed to by").
float amplitude = 100.;
float *f_ptr;
f_ptr = &litude;
amplitude = *f_ptr/2.;
These statements declare a pointer 'f_ptr' to a float, as well as a float 'amplitude' which is initialized here to 100. (It is legal to include an initialization in such declarations.)